Session Initiation Protocol (SIP) is an open signaling protocol for establishing many kinds of real-time communication sessions. Examples of the types of communication sessions that may be established using SIP include voice, video, and/or instant messaging. These communication sessions may be carried out on any type of communication device such as a personal computer, laptop computer, Personal Digital One key feature of SIP is its ability to use an end-user's Address of Record (AOR) as a single unifying public address for all communications. Thus, in a world of SIP-enhanced communications, a user's AOR becomes their single address that links the user to all of the communication devices associated with the user. Using this AOR, a caller can reach any one of the user's communication devices, also referred to as User Agents (UAs) without having to know each of the unique device addresses or phone numbers.
During communications it is sometimes desirable to know whether an incoming call is being received from an internal caller (i.e., the originating device is inside an enterprise network or a user is using an internal member) or external caller (i.e., the originating device is outside the enterprise network or a user is using an external member). Furthermore, as networks and their services become more intertwined and converged, it is desirable to specifically know the network membership status of entities including one or more of 1) the device initiating the request, 2) the user on whose behalf the device is operating, 3) the user towards whom the request is being targeted and 4) the device which has ultimately answered the request. In other words, it is desirable to know the network membership status of each entity participating in a call so as to determine appropriate trust and communications handling for those entities.
Some devices are enabled to use such information and condition the call based on whether it is to/from an internal or external device (or internal or external user). Unfortunately, in the current SIP architectures, the device (usually a server) controlling the enhanced functionality is behind a gateway, so it cannot easily and unilaterally determine whether the call is internal or external based on known solutions, since the gateway masks whether the call is internal or external.
In fact, most prior art solutions rely on the fact that a call was received along a particular circuit-switched path to determine whether the call is internal or external. This was easy to implement because a PBX would have a dedicated port connected directly to the PSTN. Any calls received at that port were, by definition, external. Thus, calls are traditionally marked based on path traveled. Unfortunately, this solution is not suitable for use in many SIP architectures.
Additionally, in many converged network architectures, the identifiers of participants and their devices are a mixture of private and public numeric, alphanumeric, domain-specific and possibly adapted addresses lacking simple rules to determine network membership. Furthermore virtual enterprises are now willing to adopt specific entities from external networks into their internal membership ranks so as to consider them as members of the enterprise network. The rules associated with determining network membership may be complex and impractical for each network device to calculate for themselves. It is therefore desirable to perform the membership calculations in one location, and provide the results as a marking that can be easily consumed by every entity operating in the enterprise network.